Skip to content

Conversation

gunjambi
Copy link
Contributor

@gunjambi gunjambi commented Oct 7, 2025

What this PR does / why we need it:
In case a compaction fails due to a partially failed index fetching or loading, the successfully opened Index objects are not closed. The index *TSDBFile opens mmapped view to the file, which increases the reference count to the file description. This reference is never released.

This causes a file description leak.

This PR fixes the logic such that in the case of an partial index load failure, we Close the indices we succeeded to load.

Which issue(s) this PR fixes:
Looks similar to #12105 but may not necessarily be the same issue.

Special notes for your reviewer:

Note that the file descriptor is not leaked. The file descriptor to the file is owned by os.File of the fileutil.MmapFile which is eventually closed by GC finalizer. But the file description to which the descriptor referred to is leaked (struct file in linux).

Checklist

  • Reviewed the CONTRIBUTING.md guide (required)
  • Documentation added
  • Tests updated
  • Title matches the required conventional commits format, see here
    • Note that Promtail is considered to be feature complete, and future development for logs collection will be in Grafana Alloy. As such, feat PRs are unlikely to be accepted unless a case can be made for the feature actually being a bug fix to existing behavior.
  • Changes that require user attention or interaction to upgrade are documented in docs/sources/setup/upgrade/_index.md
  • If the change is deprecating or removing a configuration option, update the deprecated-config.yaml and deleted-config.yaml files respectively in the tools/deprecated-config-checker directory. Example PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant